﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using Windows.Graphics.Effects;
using Windows.Foundation;

namespace Yinyue200.Sharp2D.Interop
{
    [ComImport]
    [Guid("2FC57384-A068-44D7-A331-30982FCF7177")]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    public interface IGraphicsEffectD2D1Interop
    {
        void GetEffectId(out Guid id);
        void GetNamedPropertyMapping([MarshalAs(UnmanagedType.LPWStr)]string name, out uint index, out GRAPHICS_EFFECT_PROPERTY_MAPPING mapping);
        void GetPropertyCount(out uint count);
        void GetProperty(uint index, out IntPtr value);
        void GetSource(uint index, out IGraphicsEffectSource source);
        void GetSourceCount(out uint count);
    }
    public enum GRAPHICS_EFFECT_PROPERTY_MAPPING
    {
        GRAPHICS_EFFECT_PROPERTY_MAPPING_UNKNOWN,
        GRAPHICS_EFFECT_PROPERTY_MAPPING_DIRECT,
        GRAPHICS_EFFECT_PROPERTY_MAPPING_VECTORX,
        GRAPHICS_EFFECT_PROPERTY_MAPPING_VECTORY,
        GRAPHICS_EFFECT_PROPERTY_MAPPING_VECTORZ,
        GRAPHICS_EFFECT_PROPERTY_MAPPING_VECTORW,
        GRAPHICS_EFFECT_PROPERTY_MAPPING_RECT_TO_VECTOR4,
        GRAPHICS_EFFECT_PROPERTY_MAPPING_RADIANS_TO_DEGREES,
        GRAPHICS_EFFECT_PROPERTY_MAPPING_COLORMATRIX_ALPHA_MODE,
        GRAPHICS_EFFECT_PROPERTY_MAPPING_COLOR_TO_VECTOR3,
        GRAPHICS_EFFECT_PROPERTY_MAPPING_COLOR_TO_VECTOR4
    }
}
